#pragma once

#include <d3d9.h>
#include <d3dx9.h>

struct CUSTOMVERTEX
{
	D3DXVECTOR3 position;
	D3DXVECTOR3 normal;
};

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL)


class Vertex
{
public:
	Vertex();
	Vertex(float fxPos, float fyPos, float fzPos, float fxNorm, float fyNorm, float fzNorm);
	Vertex(float Pos[], float Norm[]);
	Vertex(const Vertex& rhs);
	~Vertex(void);
	float GetPosX(){return Vert.position.x;}
	float GetPosY(){return Vert.position.y;}
	float GetPosZ(){return Vert.position.z;}
	float GetNormX(){return Vert.normal.x;}
	float GetNormY(){return Vert.normal.y;}
	float GetNormZ(){return Vert.normal.z;}
	D3DXVECTOR3 GetNorm() {return Vert.normal;}
	D3DXVECTOR3 GetPos() {return Vert.position;}
	void SetPosX(float fxIn) {Vert.position.x = fxIn;}
	void SetPosY(float fyIn) {Vert.position.y = fyIn;}
	void SetPosZ(float fzIn) {Vert.position.z = fzIn;}
	void SetNormX(float fxIn) {Vert.normal.x = fxIn;}
	void SetNormY(float fyIn) {Vert.normal.y = fyIn;}
	void SetNormZ(float fzIn) {Vert.normal.z = fzIn;}
	void SetNorm(D3DXVECTOR3* pvNorm) {Vert.normal = *pvNorm;}
	void SetPos(D3DXVECTOR3* pvPos){Vert.position = *pvPos;}

private:
	 CUSTOMVERTEX Vert;
};
